home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / pc / DirectX SDK / DXSDK / bin / DXUtils / mview.exe / RCDATA / 1039 next >
Encoding:
Text File  |  2001-10-25  |  5.9 KB  |  271 lines

  1. //
  2. // Standard texture effect
  3. // Copyright (c) 2000 Microsoft Corporation. All rights reserved.
  4. //
  5.  
  6. vector vClr;   // color 
  7.  
  8. vector vScl;
  9.  
  10. matrix mWld;    // World
  11. matrix mTot;     // Total 
  12.  
  13. matrix mWd1;     
  14. matrix mWd2;     
  15. matrix mWd3;     
  16. matrix mWd4;     
  17. matrix mWd5;     
  18. matrix mWd6;     
  19. matrix mWd7;     
  20. matrix mWd8;     
  21. matrix mWd9;     
  22. matrix mWd10;     
  23. matrix mWd11;     
  24. matrix mWd12;     
  25. matrix mWd13;     
  26. matrix mWd14;     
  27. matrix mWd15;     
  28. matrix mWd16;     
  29. matrix mWd17;     
  30. matrix mWd18;     
  31. matrix mWd19;     
  32. matrix mWd20;     
  33. matrix mWd21;     
  34. matrix mWd22;     
  35. matrix mWd23;     
  36. matrix mWd24;     
  37. matrix mWd25;     
  38. matrix mWd26;     
  39. matrix mWd27;     
  40. matrix mWd28;    
  41.  
  42. Vertexshader vDif = 
  43.     decl
  44.     {
  45.                 stream 0;
  46.  
  47.                 float v0[3];
  48.                 float v1[4];
  49.  
  50.                 float v2[3];
  51.                 float v3[4];
  52.  
  53.                 float v4[3];
  54.                 float v5[4];
  55.  
  56.                 float v6[3];
  57.     }
  58.     asm
  59.     {
  60.     vs.1.0
  61.  
  62.     //skin the point in v0 using v1 weights
  63.     m4x3 r0,v0,c0
  64.     m4x3 r1,v0,c4
  65.     m4x3 r2,v0,c8
  66.     m4x3 r3,v0,c12
  67.  
  68.     mul r0,r0,v1.xxxx
  69.     mad r0,r1,v1.yyyy,r0
  70.     mad r0,r2,v1.zzzz,r0
  71.     mad r0,r3,v1.wwww,r0
  72.  
  73.     // move into avg register
  74.     mul r8, r0, v6.xxxx
  75.  
  76.     //skin the point in v2 using v3 weights
  77.     m4x3 r0,v2,c0
  78.     m4x3 r1,v2,c4
  79.     m4x3 r2,v2,c8
  80.     m4x3 r3,v2,c12
  81.  
  82.     mul r0,r0,v3.xxxx
  83.     mad r0,r1,v3.yyyy,r0
  84.     mad r0,r2,v3.zzzz,r0
  85.     mad r0,r3,v3.wwww,r0
  86.  
  87.     // add into avg register
  88.     mad r8, r0,v6.yyyy,r8
  89.  
  90.     //skin the point in v4 using v5 weights
  91.     m4x3 r0,v4,c0
  92.     m4x3 r1,v4,c4
  93.     m4x3 r2,v4,c8
  94.     m4x3 r3,v4,c12
  95.  
  96.     mul r0,r0,v5.xxxx
  97.     mad r0,r1,v5.yyyy,r0
  98.     mad r0,r2,v5.zzzz,r0
  99.     mad r0,r3,v5.wwww,r0
  100.  
  101.     // add into avg register
  102.     mad r8, r0,v6.zzzz,r8
  103.  
  104.     mov r8.w,c20.x
  105.     m4x4 oPos,r8,c16
  106.  
  107.     mov oD0,c22
  108.     };
  109.  
  110.  
  111. technique T111
  112. {
  113.     pass P0
  114.     {
  115.         ColorVertex  = FALSE;
  116.  
  117.         ColorOp[0]   = Disable;
  118.         AlphaOp[0]   = Disable;
  119.  
  120.         VertexShader = <vDif>;
  121.  
  122.         VertexShaderConstant[0] = <mWd1>;
  123.         VertexShaderConstant[4] = <mWd2>;
  124.         VertexShaderConstant[8] = <mWd3>;
  125.         VertexShaderConstant[12] = <mWd4>;
  126.         VertexShaderConstant[16] = <mTot>;
  127.         VertexShaderConstant[20] = (1.0f, 0.0f, 0.0f, 0.0f);
  128.         VertexShaderConstant[21] = <vScl>;
  129.         VertexShaderConstant[22] = <vClr>;
  130.     }
  131. }
  132.  
  133.  
  134.  
  135. Vertexshader vIndexed = 
  136.     decl
  137.     {
  138.                 stream 0;
  139.  
  140.                 float v0[3];
  141.                 float v1[4];
  142.                 d3dcolor v2[1];
  143.  
  144.                 float v3[3];
  145.                 float v4[4];
  146.                 d3dcolor v5[1];
  147.  
  148.                 float v6[3];
  149.                 float v7[4];
  150.                 d3dcolor v8[1];
  151.  
  152.                 float v9[3];
  153.     }
  154.     asm
  155.     {
  156.     vs.1.1
  157.  
  158.     // Compensate for lack of UBYTE4 on Geforce3
  159.     mul r8,v2.zyxw,c4.wwww
  160.     
  161.     mov a0.x,r8.x
  162.     m4x3 r0,v0,c[a0.x + 9]
  163.     mov a0.x,r8.y
  164.     m4x3 r1,v0,c[a0.x + 9]
  165.     mov a0.x,r8.z
  166.     m4x3 r2,v0,c[a0.x + 9]
  167.     mov a0.x,r8.w
  168.     m4x3 r3,v0,c[a0.x + 9]
  169.  
  170.     mul r0,r0,v1.xxxx
  171.     mad r0,r1,v1.yyyy,r0
  172.     mad r0,r2,v1.zzzz,r0
  173.     mad r0,r3,v1.wwww,r0
  174.  
  175.     // move into avg register
  176.     mul r7, r0, v9.xxxx
  177.  
  178.     // Compensate for lack of UBYTE4 on Geforce3
  179.     mul r8,v5.zyxw,c4.wwww
  180.     
  181.     mov a0.x,r8.x
  182.     m4x3 r0,v3,c[a0.x + 9]
  183.     mov a0.x,r8.y
  184.     m4x3 r1,v3,c[a0.x + 9]
  185.     mov a0.x,r8.z
  186.     m4x3 r2,v3,c[a0.x + 9]
  187.     mov a0.x,r8.w
  188.     m4x3 r3,v3,c[a0.x + 9]
  189.  
  190.     mul r0,r0,v4.xxxx
  191.     mad r0,r1,v4.yyyy,r0
  192.     mad r0,r2,v4.zzzz,r0
  193.     mad r0,r3,v4.wwww,r0
  194.  
  195.     // add into avg register
  196.     mad r7, r0,v9.yyyy,r7
  197.  
  198.     // Compensate for lack of UBYTE4 on Geforce3
  199.     mul r8,v8.zyxw,c4.wwww
  200.     
  201.     mov a0.x,r8.x
  202.     m4x3 r0,v6,c[a0.x + 9]
  203.     mov a0.x,r8.y
  204.     m4x3 r1,v6,c[a0.x + 9]
  205.     mov a0.x,r8.z
  206.     m4x3 r2,v6,c[a0.x + 9]
  207.     mov a0.x,r8.w
  208.     m4x3 r3,v6,c[a0.x + 9]
  209.  
  210.     mul r0,r0,v7.xxxx
  211.     mad r0,r1,v7.yyyy,r0
  212.     mad r0,r2,v7.zzzz,r0
  213.     mad r0,r3,v7.wwww,r0
  214.  
  215.     // add into avg register
  216.     mad r7, r0,v9.zzzz,r7
  217.  
  218.     mov r7.w,c4.x
  219.     m4x4 oPos,r7,c0
  220.  
  221.     mov oD0,c5
  222.     };
  223.  
  224. technique Indexed
  225. {
  226.     pass P0
  227.     {
  228.         ColorVertex = FALSE;
  229.  
  230.         ColorOp[0]   = Disable;
  231.         AlphaOp[0]   = Disable;
  232.  
  233.         VertexShader = <vIndexed>;
  234.  
  235.         VertexShaderConstant[0] = <mTot>;
  236.         VertexShaderConstant[4] = ( 1.0f, 0.0f, 0.0f, 765.01f );
  237.         VertexShaderConstant[5] = <vClr>;
  238.         VertexShaderConstant[6] = <vScl>;
  239.  
  240.         VertexShaderConstant3[9] = <mWd1>;
  241.         VertexShaderConstant3[12] = <mWd2>;
  242.         VertexShaderConstant3[15] = <mWd3>;
  243.         VertexShaderConstant3[18] = <mWd4>;
  244.         VertexShaderConstant3[21] = <mWd5>;
  245.         VertexShaderConstant3[24] = <mWd6>;
  246.         VertexShaderConstant3[27] = <mWd7>;
  247.         VertexShaderConstant3[30] = <mWd8>;
  248.         VertexShaderConstant3[33] = <mWd9>;
  249.         VertexShaderConstant3[36] = <mWd10>;
  250.         VertexShaderConstant3[39] = <mWd11>;
  251.         VertexShaderConstant3[42] = <mWd12>;
  252.         VertexShaderConstant3[45] = <mWd13>;
  253.         VertexShaderConstant3[48] = <mWd14>;
  254.         VertexShaderConstant3[51] = <mWd15>;
  255.         VertexShaderConstant3[54] = <mWd16>;
  256.         VertexShaderConstant3[57] = <mWd17>;
  257.         VertexShaderConstant3[60] = <mWd18>;
  258.         VertexShaderConstant3[63] = <mWd19>;
  259.         VertexShaderConstant3[66] = <mWd20>;
  260.         VertexShaderConstant3[69] = <mWd21>;
  261.         VertexShaderConstant3[72] = <mWd22>;
  262.         VertexShaderConstant3[75] = <mWd23>;
  263.         VertexShaderConstant3[78] = <mWd24>;
  264.         VertexShaderConstant3[81] = <mWd25>;
  265.         VertexShaderConstant3[84] = <mWd26>;
  266.         VertexShaderConstant3[87] = <mWd27>;
  267.         VertexShaderConstant3[90] = <mWd28>;
  268.     }
  269. }
  270.  
  271.